Invention relates to electronic storage, particularly to hierarchical buffer systems.
Conventional digital electronics systems employ various storage structures, including buffers, queues, caches, or other similar memory devices. More recently, especially for distributed networking and applications, such as those applications for enabling high-speed transmission, processing, and storage of so-called Internet or related digital data or signaling traffic, buffers and similar electronic repositories are increasingly used as temporary storage, for example, to avoid or otherwise manage congestion of traffic flow of packets, cells, frames or other data units through a network gateway.
Various approaches are used to police gateway queuing of traffic load at given times. In particular, with buffer structures being used to hold temporary excess traffic load at a gateway, numerous buffer management algorithms are proposed, such as last packet discard (i.e., xe2x80x9cdrop tailxe2x80x9d approach), randomization (i.e., xe2x80x9cearly random dropxe2x80x9d (ERD), xe2x80x9crandom early detectionxe2x80x9d (RED), xe2x80x9cflow random early dropxe2x80x9d (FRED)), as discussed in further detail in references cited in this patent application, which are hereby incorporated by reference as appropriate.
However, such present approaches are limited in optimizing data throughput and maintaining fairness amongst different flows, particularly for processing arriving data units for allocation in hierarchical buffer systems. Accordingly, an improved solution is required to optimize data throughput and storage.
Invention resides in a multi-level buffer system and/or method for managing buffer resources to reduce or eliminate network congestion, particularly by dynamically allocating storage resources to arriving data units according to hierarchical acceptance criteria. Moreover, stored data units are retrievable according to hierarchical schedule.
Acceptance criteria may comprise minimum and/or maximum threshold values, which are pre-specified or dynamically computed, and may be determined from system resource and storage availability. Data units are accepted for allocated buffer storage upon dynamically-determined satisfaction of certain hierarchically-based acceptance criteria. Such criteria may be determined from reserved minimum buffer length, calculated maximum buffer length, or random early discard-type algorithm applied separately to each buffer level.